home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / TextField.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-19  |  4.8 KB  |  192 lines

  1. package symantec.itools.db.awt;
  2.  
  3. import java.awt.Event;
  4. import java.awt.TextComponent;
  5. import java.io.IOException;
  6. import symantec.itools.db.pro.ProjBinder;
  7. import symantec.itools.db.pro.ProjLink;
  8. import symantec.itools.db.pro.RelationView;
  9. import symantec.itools.db.pro.RelationViewMetaData;
  10. import symjava.sql.SQLException;
  11.  
  12. public class TextField extends java.awt.TextField implements ProjLink {
  13.    private ProjBinder m_ProjBinder;
  14.    private boolean m_DynamicUpdate = false;
  15.    private boolean m_DynamicUpdateOverride = true;
  16.    private boolean m_BinderDetermines = true;
  17.    private String m_BinderData;
  18.    private String m_ScreenData;
  19.    private int m_treatBlankAs;
  20.  
  21.    public TextField() {
  22.       this.m_BinderData = new String();
  23.       this.m_ScreenData = new String();
  24.    }
  25.  
  26.    public TextField(int var1) {
  27.       super(var1);
  28.       this.m_ScreenData = new String();
  29.       this.m_BinderData = new String();
  30.    }
  31.  
  32.    public TextField(String var1) {
  33.       super(var1);
  34.       this.m_ScreenData = new String();
  35.       this.m_BinderData = new String();
  36.    }
  37.  
  38.    public TextField(String var1, int var2) {
  39.       super(var1, var2);
  40.       this.m_ScreenData = new String();
  41.       this.m_BinderData = new String();
  42.    }
  43.  
  44.    public void init(ProjBinder var1) {
  45.       this.m_ProjBinder = var1;
  46.       this.setEditable(this.m_ProjBinder);
  47.    }
  48.  
  49.    public void setBinding(RelationView var1, String var2) {
  50.       int var3 = 0;
  51.       int var4 = 0;
  52.  
  53.       try {
  54.          RelationViewMetaData var5 = var1.getMetaData();
  55.          var3 = var1.findProjByName(var2);
  56.          var4 = var5.getColumnType(var3);
  57.          if (var4 == 91 || var4 == 92 || var4 == 93) {
  58.             this.m_DynamicUpdateOverride = false;
  59.          }
  60.  
  61.          var1.bindProj(var3, this);
  62.       } catch (SQLException var6) {
  63.          this.raiseException("SQLException from setBinding: " + ((Throwable)var6).getMessage());
  64.       }
  65.    }
  66.  
  67.    public void setDynamicUpdate(boolean var1) {
  68.       this.m_DynamicUpdate = var1;
  69.    }
  70.  
  71.    public void setTreatBlankAs(String var1) {
  72.       if ((new String(var1)).toUpperCase().equals("DEFAULT")) {
  73.          this.m_treatBlankAs = 0;
  74.       } else if ((new String(var1)).toUpperCase().equals("NULL")) {
  75.          this.m_treatBlankAs = 1;
  76.       } else {
  77.          if ((new String(var1)).toUpperCase().equals("BLANK")) {
  78.             this.m_treatBlankAs = 2;
  79.          }
  80.  
  81.       }
  82.    }
  83.  
  84.    public void notifyDataChange(ProjBinder var1) {
  85.       this.m_BinderData = "";
  86.       if (var1 != null) {
  87.          this.m_ProjBinder = var1;
  88.  
  89.          try {
  90.             if (var1.getRelationView().getCurrentRecordState() != 105 && var1.isReadable() && !var1.isNull()) {
  91.                this.m_BinderData = var1.getStringValue();
  92.             }
  93.          } catch (SQLException var3) {
  94.             this.raiseException("SQLException from TextField.notifyDataChange.getString: " + ((Throwable)var3).getMessage());
  95.          } catch (IOException var4) {
  96.             this.raiseException("IOException from TextField.notifyDataChange.getString: " + ((Throwable)var4).getMessage());
  97.          }
  98.  
  99.          if (this.m_BinderData == null) {
  100.             this.m_BinderData = new String();
  101.          }
  102.  
  103.          this.m_ScreenData = ((TextComponent)this).getText();
  104.          if (!this.m_BinderData.equals(this.m_ScreenData)) {
  105.             this.m_ScreenData = this.m_BinderData;
  106.             ((TextComponent)this).setText(this.m_ScreenData);
  107.          }
  108.  
  109.          if (this.m_BinderDetermines) {
  110.             this.setEditable(this.m_ProjBinder);
  111.          }
  112.  
  113.       }
  114.    }
  115.  
  116.    public boolean lostFocus(Event var1, Object var2) {
  117.       try {
  118.          this.notifySetData(this.m_ProjBinder);
  119.       } catch (SQLException var4) {
  120.          this.raiseException("SQLException from TextField.notifySetData: " + ((Throwable)var4).getMessage());
  121.       }
  122.  
  123.       return super.lostFocus(var1, var2);
  124.    }
  125.  
  126.    boolean notifyInputChanged(String var1) {
  127.       if (!this.m_ScreenData.equals(var1)) {
  128.          this.m_ScreenData = var1;
  129.       }
  130.  
  131.       try {
  132.          if (!this.m_BinderData.equals(this.m_ScreenData) && this.m_ProjBinder.getRelationView().getCurrentRecordState() != 105 && this.m_ProjBinder.getRelationView().getCurrentRecordState() != 103 && this.m_ProjBinder.getRelationView().getCurrentRecordState() != 104) {
  133.             this.m_BinderData = this.m_ScreenData;
  134.  
  135.             try {
  136.                this.m_ProjBinder.setValueFromString(this.m_ScreenData, 0, this.m_treatBlankAs);
  137.             } catch (IOException var3) {
  138.                this.raiseException("IOException from TextField.notifyInputChange: " + ((Throwable)var3).getMessage());
  139.                return false;
  140.             }
  141.          }
  142.  
  143.          return true;
  144.       } catch (SQLException var4) {
  145.          this.raiseException("SQLException from TextField.notifyInputChange: " + ((Throwable)var4).getMessage());
  146.          return false;
  147.       }
  148.    }
  149.  
  150.    public boolean notifySetData(ProjBinder var1) throws SQLException {
  151.       return this.notifyInputChanged(((TextComponent)this).getText());
  152.    }
  153.  
  154.    public boolean handleEvent(Event var1) {
  155.       if (this.m_DynamicUpdate && this.m_DynamicUpdateOverride) {
  156.          try {
  157.             this.notifySetData(this.m_ProjBinder);
  158.          } catch (SQLException var3) {
  159.             this.raiseException("SQLException from TextField.notifySetData: " + ((Throwable)var3).getMessage());
  160.          }
  161.       }
  162.  
  163.       return super.handleEvent(var1);
  164.    }
  165.  
  166.    void setEditable(ProjBinder var1) {
  167.       boolean var2 = false;
  168.  
  169.       try {
  170.          if (var1 != null) {
  171.             RelationView var3 = var1.getRelationView();
  172.             if (var3 != null && var3.getCurrentRecordState() != 105) {
  173.                var2 = var1.isWritable();
  174.             }
  175.          }
  176.       } catch (SQLException var4) {
  177.          this.raiseException("SQLException from setEditable: " + ((Throwable)var4).getMessage());
  178.       }
  179.  
  180.       super.setEditable(var2);
  181.    }
  182.  
  183.    public void setEditable(boolean var1) {
  184.       this.m_BinderDetermines = var1;
  185.       super.setEditable(var1);
  186.    }
  187.  
  188.    void raiseException(String var1) {
  189.       System.out.println(var1);
  190.    }
  191. }
  192.